Java의 정석 [Java의 정석]Chapter6.객체지향 프로그래밍(11~13) 선언위치에 따른 변수의 종류 변수의 종류 : 클래스 변수 , 인스턴스 변수 , 지역변수 변수의 종료를 결정짓는 중요한 요소는 변수의 선언 위치 멤버변수를 제외한 나머지 변수들은 모두 지역변수 멤버변수 중 stasic이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변수임 변수의 종류 클래스 변수(class variable) 인스턴스 변수(instance variable) 인스턴스가 생성되... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(18~19) 메서드의 실행 흐름 MyMath클래스의 'add(long a, long b)'를 호출 방법 ▶ 먼저 'MyMath mm = new MyMath();'와 같이, MyMath클래스의 인스턴스를 생성한 다음 참조변수 mm을 통해야 함 메서드의 실행 흐름 예제 ▶ 사칙연산을 위한 4개의 메서드가 정의 되어 있는 클래스 이용한 예제 → 예제 통해 클래스에 선언된 메서드를 어떻게 호출하는지 파악 가능 ... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(14~17) 메서드(method) : 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과 반환 메서드가 작업을 수행하는데 필요한 값만 넣고 원하는 결과만 얻으면 될 뿐, 내부적으로 어떤 과정을 거쳐 결과를 만들어내는지 몰라도 됨(그래서 메서드를 내부가 보이지 않는 '블랙박스(black box)'라고도 함) 메서드는 선언부(header... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(09~10) 클래스의 정의(1) - 데이터와 함수의 결합 변수 : 하나의 데이터를 저장할 수 있는 공간 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간 클래스 : 데이터와 함수의 결합(구조체+함수) 함수는 주로 데이터를 가지고 작업을 하기 때문에 많은 경우에 있어 데이터와 함수는 관계가 깊... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(05~07) 📍 주의 : 소스파일의 이름은 public class의 이름과 일치 -만약 소스파일 내에 public class가 없다면, 소스파일의 이름은 소스파일 내의 어떤 클래스의 이름으로 해도 상관없음 소스파일(.java)과 달리 클래스파일(.class)은 클래스마다 하나씩 만들어짐 ex) 올바른 작성 예) 에 제시된 'Hello2.java'를 컴파일하면 'Hello2.class'와 'Hello3.c... JavaJava의 정석Java [Java의 정석]Chapter5.배열(20~23) 2차원 배열의 초기화 2차원 배열도 괄호{ }를 사용해서 생성과 초기화를 동시에 가능 다만, 1차원 배열보다 괄호{ }를 한번 더 써서 행별로 구분 크기가 작은 배열은 위와 같이 간단히 한 줄로 써줘도 좋지만, 다음과 같이 행별로 줄 바꿈을 해주는 것이 이해하기 쉬움 아래와 같은 테이블 형태의 데이터를 배열에 저장하려면, 국어 영어 수학 위의 문장이 수행된 후, 2차원 배열 score가 메모... JavaJava의 정석Java [Java의 정석]Chapter5.배열(24) Arrays로 배열 다루기 Arrays 클래스는 배열을 다루는데 유용한 메서드를 제공 자주 사용되는 메서드 소개(11장에서 심화) 🌼배열의 비교와 출력 - equals(), toString() toString() toString() 배열의 모든 요소를 문자열로 편하게 출력 가능 일차원 배열에만 사용 가능 다차원 배열에는 deepToString() 사용 equals() 두 배열에 저장된 모든 ... Java의 정석JavaJava [Java의 정석]Chapter6.객체지향 프로그래밍(01~04) 규칙을 이용해 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램 구성 가능 : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경 가능 클래스의 정의 : 객체를 정의해놓은 것, 객체의 설계도 또는 틀 클래스의 용도 : 객체를 생성하는데 사용 ▶ 유형의 객체 → 책상, 의자, 자동차, TV 등 ▶ 무형의 객체 → 수학공식, 프로그램 에러와 같은 논리나 개념 →클래스는 단지 객... Java의 정석JavaJava [Java의 정석]Chapter6.객체지향 프로그래밍(08) 객체배열 객체배열 : 많은 수의 객체를 다뤄야할 때 배열로 다룸 객체배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장됨(사실 객체배열은 참조변수들을 하나로 묶은 참조변수 배열인 것) 객체 배열을 생성하는 것은 객체를 다루기 위한 참조변수들이 만들어진 것 뿐, 객체가 자동 저장되지 않으니 객체배열의 각 요소에 저장 필수... Java의 정석JavaJava [Java의 정석] 7장 객체지향 프로그래밍 2 접근 제어자는 조상 클래스의 메소드보다 좁은 범위로 변경할 수 없다. 조상 클래스의 메소드보다 많은 수의 예외를 선언할 수 없다. 인스턴스 메소드를 static 메소드로 또는 그 반대로 변경할 수 없다. static member를 호출할 때 클래스 이름을 생략할 수 있게 해준다. 또한, 다른 클래스의 조상이 될 수 없다. 자식 클래스의 인스턴스를 생성할 때 조상 클래스의 생성자가 실행되어야 ... Java의 정석Java의 정석 [Java의 정석] 8장 예외처리 Exception Handling 컴파일 에러 컴파일 시에 발생하는 에러 런타임 에러 실행 시에 발생하는 에러 논리적 에러 에러 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 모든 클래스의 조상은 Object이므로 Object가 갖고 있다. 여기서 예외의 최고 조상은 Exception 클래스 이다. Exception클래스를 보면 두 그룹으로 나누어져 있다. ... Java의 정석Java의 정석 [Java의 정석]Chapter1.자바를 시작하기 전에(04~06) 'Java Virtual Machine(JVM)'은 '자바를 실행하기 위한 가상 기계(컴퓨터)' 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서 반드시 JVM이 필요 일반 애플리케이션(오른쪽 그림)의 코드는 OS만 거치고 하드웨어로 전달되는데, Java 애플리케이션은 JVM을 한 번 더 거치고, 하드웨어 맞게 완전히 컴파일... JavaJava의 정석Java [Java의 정석]Chapter1.자바를 시작하기 전에(10~12) 이클립스 설치하기 🚩 이클립스 설치 방법 1) 구글(Google.com)에서 eclipse 입력 후 아래와 같은 링크를 클릭 2) 링크 페이지에서 Download x86_64 클릭 3) 이동한 다운로드 화면에서 Download 클릭 5) 로딩 완료 후 새로 열린 화면에서 Eclipse IDE for Java Developers 클릭 6) 새로 열린 화면에서 INSTALL 클릭 7) Insta... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(12) 임의의 정수만들기 Math.random() 난수(임의의 수)를 얻기 위해서 Math.random() 사용 이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환(int로 변환하는 이유) 0.0은 범위에 포함되고(각 변에 +1 하는 이유) 1.0은 포함되지 않음 0.0 <= Math.random() < 1.0 🍟 1과 3 사이의 정수 구하는 과정 Math.random()을... JavaJava의 정석Java [Java의 정석]Chapter3.연산자(16~19) 논리 부정 연산자 ! 논리 부정 연산자 !는 조건문과 반복문에서 주로 사용 ▶ ch < 'a' || ch > 'z' 보다 ex 식 '!!b' 의 평가과정 조건 연산자 조건 연산자 : 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며, 삼항 연산자는 조건 연산자 하나뿐임 result = (x > y) ? x : y; (괄호 생략가능) 위의 문장에서 식 'x>y'의 결과... JavaJava의 정석Java [Java의 정석]Chapter3.연산자(07~09) 형변환 연산자 형변환 : 변수나 리터럴(상수)의 타입을 다른 타입으로 변환하는 것 형변환 방법 : 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여줌 ▶ (타입)피연산자 괄호()는 '캐스트 연산자' 또는 '형변환 연산자'라고 하며, 형변환을 '캐스팅(casting)'이라고도 함. 형변환 연산자는 그저 피연산자의 값을 읽어서 지정된 타입으로 형변환하고 결과를 반환... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(01~03) if문 조건에 따라 문장을 건너뛰거나 반복해서 수행함. 즉, 프로그램의 흐름(flow)를 바꾸는 역할을 하는 문장을 '제어문(control statement)' 이라 함 제어문에는 조건문(조건에 따라 다른 문장이 수행)과 반복문(특정 문장들을 반복해서 수행)이 있음 🍕 if문 가장 기본적인 조건문 '조건식'과 '괄호{}'로 이루어짐 만일(if) 조건식이 참(true)이면 괄호{}안의 문장들을... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(04~06) if-else문 if문의 변형인 if-else문의 구조 if-else if문 처리해야 할 경우의 수가 셋 이상일 경우 한 문장에 여러개의 조건식을 쓸 수 있는 if-else if문 사용 (if-else문은 두 가지 경우 중 하나가 수행되는 구조) if-else if문 예제... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(13~15) for문 반복문의 종류 : for문 while문 do-while문 💡 반복 횟수를 알고 있을 때는 for문, 그렇지 않을 때는 while문 사용 for문 : 초기화 조건식 증감식 블럭{} 4부분으로 구성 조건식이 참인 동안 블럭{}내의 문장들을 바나복하다 거짓이 되면 반복문 탈출 for(초기화;조건식;증감식) { //조건식이 참(true)인 동안 수행 } 초기화 → 조건식 → 수행될 문장 →... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(09~11) switch문 if문은 조건식의 결과가 참 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 추가 해야 하므로 복잡해짐 Switch문은 단 하나의 조건식으로 많은 경우의 수를 처리 🍟 switch문의 수행 과정 ① 조건식을 계산 ② 조건식의 결과와 일치하는 case문으로 이동 ③ 이후의 문장들을 수행 ④ break문이나 switch문의 끝을 만나면 switch문 전체를... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(07~08) 중첩 if문 if문의 블럭 내에 또 다른 if문을 포함시키는 것을 중첩 if문이라고 하며, 중첩의 횟수에는 거의 제한이 없음 중첩 if문 예제 3개의 if문으로 이루어져 있으며, if문 안에 또 다른 2개의 if문을 포함하고 있음 제일 바깥쪽에 있는 if문에서 점수에 따라 학점(grade)를 결정하고, 내부의 if문에서는 학점을 더 세부적으로 나누어서 평가하고 결과 출력... JavaJava의 정석Java [Java의 정석]Chapter2.변수(16~17) 부호있는 정수의 오버플로우 부호없는 정수와 부호있는 정수는 표현범위 즉, 최대값과 최소값이 다르기 때문에 오버플로우가 발생하는 시점이 다름 📌 부호 없는 정수 : 2진수로 '0000'이 될 때 오버플로우 발생 📌 부호 있는 정수 : 부호비트가 0에서 1이 될 때 오버플로우 발생 부호없는 10진수 2진수 부호있는 10진수 7←최대값 (오버플로우 발생) -8←최소값 (오버플로우 발생) (오버플로... JavaJava의 정석Java [Java의 정석]Chapter2.변수(13~15) Printf를 이용한 출력 예제 🍕 출력 결과 실수형 값의 출력에 사용되는 지시자는 %f %e %g 가 있는데, %f 가 주로 쓰이고, %e는 지수형태로 출력할 때, %g는 값을 간략하게 표현 할 때 사용 %f 는 기본적으로 소수점 아래 6자리까지만 출력하기 때문에 소수점 아래 7자리에서 반올림 전체 자리수와 소수점 아래의 자리수를 지정할 수도 있음 ▶전체 14자리 중 소수점 아래 10자리 ... JavaJava의 정석Java [Java의 정석]Chapter2.변수(01~03) 화면에 글자 출력하기-print()과 println() System.out.print() 괄호 안의 내용을 출력하고 줄바꿈을 하지 않음 System.out.println() 괄호 안의 내용을 출력하고 줄바꿈 자바는 대소문자를 구분함으로, System 입력 시 대문자 S 로 입력 덧셈 뺄셈 계산하기 변수의 선언과 저장 변수(variable)? 하나의 값을 저장할 수 있는 저장공간 변수가 필요하... JavaJava의 정석Java [Java의 정석]Chapter2.변수(07~09) 문자 리터럴과 문자열 리터럴 문자 리터럴 ❓ 문자열 리터럴 ❓ 📍 문자열 리터럴은""안에 아무런 문자도 넣지 않은 것을 허용하며, 이를 빈 문자열(empty string)이라고 함 📍 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야 함 원래 String은 클래스(class)이므로, 아래와 같이 객체를 생성하는 연사자 new를 사용해야 하지만 특별히 이와 같은 표현도 허용 문자열 결합 덧셈... JavaJava의 정석Java 자바_객체지향언어 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 1. 클래스의 ... Java의 정석Java의 정석 자바_상속 상속의 정의 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 상속의 예시 상속에 대해서 알 수 있는 것들 부모와 자식 관계에서 클래스의 멤버변수와 메서드를 상속 받았을 때, 자식은 부모클래스의 멤버변수와 메서드를... Java의 정석Java의 정석
[Java의 정석]Chapter6.객체지향 프로그래밍(11~13) 선언위치에 따른 변수의 종류 변수의 종류 : 클래스 변수 , 인스턴스 변수 , 지역변수 변수의 종료를 결정짓는 중요한 요소는 변수의 선언 위치 멤버변수를 제외한 나머지 변수들은 모두 지역변수 멤버변수 중 stasic이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변수임 변수의 종류 클래스 변수(class variable) 인스턴스 변수(instance variable) 인스턴스가 생성되... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(18~19) 메서드의 실행 흐름 MyMath클래스의 'add(long a, long b)'를 호출 방법 ▶ 먼저 'MyMath mm = new MyMath();'와 같이, MyMath클래스의 인스턴스를 생성한 다음 참조변수 mm을 통해야 함 메서드의 실행 흐름 예제 ▶ 사칙연산을 위한 4개의 메서드가 정의 되어 있는 클래스 이용한 예제 → 예제 통해 클래스에 선언된 메서드를 어떻게 호출하는지 파악 가능 ... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(14~17) 메서드(method) : 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과 반환 메서드가 작업을 수행하는데 필요한 값만 넣고 원하는 결과만 얻으면 될 뿐, 내부적으로 어떤 과정을 거쳐 결과를 만들어내는지 몰라도 됨(그래서 메서드를 내부가 보이지 않는 '블랙박스(black box)'라고도 함) 메서드는 선언부(header... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(09~10) 클래스의 정의(1) - 데이터와 함수의 결합 변수 : 하나의 데이터를 저장할 수 있는 공간 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간 클래스 : 데이터와 함수의 결합(구조체+함수) 함수는 주로 데이터를 가지고 작업을 하기 때문에 많은 경우에 있어 데이터와 함수는 관계가 깊... JavaJava의 정석Java [Java의 정석]Chapter6.객체지향 프로그래밍(05~07) 📍 주의 : 소스파일의 이름은 public class의 이름과 일치 -만약 소스파일 내에 public class가 없다면, 소스파일의 이름은 소스파일 내의 어떤 클래스의 이름으로 해도 상관없음 소스파일(.java)과 달리 클래스파일(.class)은 클래스마다 하나씩 만들어짐 ex) 올바른 작성 예) 에 제시된 'Hello2.java'를 컴파일하면 'Hello2.class'와 'Hello3.c... JavaJava의 정석Java [Java의 정석]Chapter5.배열(20~23) 2차원 배열의 초기화 2차원 배열도 괄호{ }를 사용해서 생성과 초기화를 동시에 가능 다만, 1차원 배열보다 괄호{ }를 한번 더 써서 행별로 구분 크기가 작은 배열은 위와 같이 간단히 한 줄로 써줘도 좋지만, 다음과 같이 행별로 줄 바꿈을 해주는 것이 이해하기 쉬움 아래와 같은 테이블 형태의 데이터를 배열에 저장하려면, 국어 영어 수학 위의 문장이 수행된 후, 2차원 배열 score가 메모... JavaJava의 정석Java [Java의 정석]Chapter5.배열(24) Arrays로 배열 다루기 Arrays 클래스는 배열을 다루는데 유용한 메서드를 제공 자주 사용되는 메서드 소개(11장에서 심화) 🌼배열의 비교와 출력 - equals(), toString() toString() toString() 배열의 모든 요소를 문자열로 편하게 출력 가능 일차원 배열에만 사용 가능 다차원 배열에는 deepToString() 사용 equals() 두 배열에 저장된 모든 ... Java의 정석JavaJava [Java의 정석]Chapter6.객체지향 프로그래밍(01~04) 규칙을 이용해 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램 구성 가능 : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경 가능 클래스의 정의 : 객체를 정의해놓은 것, 객체의 설계도 또는 틀 클래스의 용도 : 객체를 생성하는데 사용 ▶ 유형의 객체 → 책상, 의자, 자동차, TV 등 ▶ 무형의 객체 → 수학공식, 프로그램 에러와 같은 논리나 개념 →클래스는 단지 객... Java의 정석JavaJava [Java의 정석]Chapter6.객체지향 프로그래밍(08) 객체배열 객체배열 : 많은 수의 객체를 다뤄야할 때 배열로 다룸 객체배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장됨(사실 객체배열은 참조변수들을 하나로 묶은 참조변수 배열인 것) 객체 배열을 생성하는 것은 객체를 다루기 위한 참조변수들이 만들어진 것 뿐, 객체가 자동 저장되지 않으니 객체배열의 각 요소에 저장 필수... Java의 정석JavaJava [Java의 정석] 7장 객체지향 프로그래밍 2 접근 제어자는 조상 클래스의 메소드보다 좁은 범위로 변경할 수 없다. 조상 클래스의 메소드보다 많은 수의 예외를 선언할 수 없다. 인스턴스 메소드를 static 메소드로 또는 그 반대로 변경할 수 없다. static member를 호출할 때 클래스 이름을 생략할 수 있게 해준다. 또한, 다른 클래스의 조상이 될 수 없다. 자식 클래스의 인스턴스를 생성할 때 조상 클래스의 생성자가 실행되어야 ... Java의 정석Java의 정석 [Java의 정석] 8장 예외처리 Exception Handling 컴파일 에러 컴파일 시에 발생하는 에러 런타임 에러 실행 시에 발생하는 에러 논리적 에러 에러 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 모든 클래스의 조상은 Object이므로 Object가 갖고 있다. 여기서 예외의 최고 조상은 Exception 클래스 이다. Exception클래스를 보면 두 그룹으로 나누어져 있다. ... Java의 정석Java의 정석 [Java의 정석]Chapter1.자바를 시작하기 전에(04~06) 'Java Virtual Machine(JVM)'은 '자바를 실행하기 위한 가상 기계(컴퓨터)' 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서 반드시 JVM이 필요 일반 애플리케이션(오른쪽 그림)의 코드는 OS만 거치고 하드웨어로 전달되는데, Java 애플리케이션은 JVM을 한 번 더 거치고, 하드웨어 맞게 완전히 컴파일... JavaJava의 정석Java [Java의 정석]Chapter1.자바를 시작하기 전에(10~12) 이클립스 설치하기 🚩 이클립스 설치 방법 1) 구글(Google.com)에서 eclipse 입력 후 아래와 같은 링크를 클릭 2) 링크 페이지에서 Download x86_64 클릭 3) 이동한 다운로드 화면에서 Download 클릭 5) 로딩 완료 후 새로 열린 화면에서 Eclipse IDE for Java Developers 클릭 6) 새로 열린 화면에서 INSTALL 클릭 7) Insta... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(12) 임의의 정수만들기 Math.random() 난수(임의의 수)를 얻기 위해서 Math.random() 사용 이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double값을 반환(int로 변환하는 이유) 0.0은 범위에 포함되고(각 변에 +1 하는 이유) 1.0은 포함되지 않음 0.0 <= Math.random() < 1.0 🍟 1과 3 사이의 정수 구하는 과정 Math.random()을... JavaJava의 정석Java [Java의 정석]Chapter3.연산자(16~19) 논리 부정 연산자 ! 논리 부정 연산자 !는 조건문과 반복문에서 주로 사용 ▶ ch < 'a' || ch > 'z' 보다 ex 식 '!!b' 의 평가과정 조건 연산자 조건 연산자 : 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며, 삼항 연산자는 조건 연산자 하나뿐임 result = (x > y) ? x : y; (괄호 생략가능) 위의 문장에서 식 'x>y'의 결과... JavaJava의 정석Java [Java의 정석]Chapter3.연산자(07~09) 형변환 연산자 형변환 : 변수나 리터럴(상수)의 타입을 다른 타입으로 변환하는 것 형변환 방법 : 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여줌 ▶ (타입)피연산자 괄호()는 '캐스트 연산자' 또는 '형변환 연산자'라고 하며, 형변환을 '캐스팅(casting)'이라고도 함. 형변환 연산자는 그저 피연산자의 값을 읽어서 지정된 타입으로 형변환하고 결과를 반환... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(01~03) if문 조건에 따라 문장을 건너뛰거나 반복해서 수행함. 즉, 프로그램의 흐름(flow)를 바꾸는 역할을 하는 문장을 '제어문(control statement)' 이라 함 제어문에는 조건문(조건에 따라 다른 문장이 수행)과 반복문(특정 문장들을 반복해서 수행)이 있음 🍕 if문 가장 기본적인 조건문 '조건식'과 '괄호{}'로 이루어짐 만일(if) 조건식이 참(true)이면 괄호{}안의 문장들을... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(04~06) if-else문 if문의 변형인 if-else문의 구조 if-else if문 처리해야 할 경우의 수가 셋 이상일 경우 한 문장에 여러개의 조건식을 쓸 수 있는 if-else if문 사용 (if-else문은 두 가지 경우 중 하나가 수행되는 구조) if-else if문 예제... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(13~15) for문 반복문의 종류 : for문 while문 do-while문 💡 반복 횟수를 알고 있을 때는 for문, 그렇지 않을 때는 while문 사용 for문 : 초기화 조건식 증감식 블럭{} 4부분으로 구성 조건식이 참인 동안 블럭{}내의 문장들을 바나복하다 거짓이 되면 반복문 탈출 for(초기화;조건식;증감식) { //조건식이 참(true)인 동안 수행 } 초기화 → 조건식 → 수행될 문장 →... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(09~11) switch문 if문은 조건식의 결과가 참 거짓, 두 가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 추가 해야 하므로 복잡해짐 Switch문은 단 하나의 조건식으로 많은 경우의 수를 처리 🍟 switch문의 수행 과정 ① 조건식을 계산 ② 조건식의 결과와 일치하는 case문으로 이동 ③ 이후의 문장들을 수행 ④ break문이나 switch문의 끝을 만나면 switch문 전체를... JavaJava의 정석Java [Java의 정석]Chapter4.조건문과 반복문(07~08) 중첩 if문 if문의 블럭 내에 또 다른 if문을 포함시키는 것을 중첩 if문이라고 하며, 중첩의 횟수에는 거의 제한이 없음 중첩 if문 예제 3개의 if문으로 이루어져 있으며, if문 안에 또 다른 2개의 if문을 포함하고 있음 제일 바깥쪽에 있는 if문에서 점수에 따라 학점(grade)를 결정하고, 내부의 if문에서는 학점을 더 세부적으로 나누어서 평가하고 결과 출력... JavaJava의 정석Java [Java의 정석]Chapter2.변수(16~17) 부호있는 정수의 오버플로우 부호없는 정수와 부호있는 정수는 표현범위 즉, 최대값과 최소값이 다르기 때문에 오버플로우가 발생하는 시점이 다름 📌 부호 없는 정수 : 2진수로 '0000'이 될 때 오버플로우 발생 📌 부호 있는 정수 : 부호비트가 0에서 1이 될 때 오버플로우 발생 부호없는 10진수 2진수 부호있는 10진수 7←최대값 (오버플로우 발생) -8←최소값 (오버플로우 발생) (오버플로... JavaJava의 정석Java [Java의 정석]Chapter2.변수(13~15) Printf를 이용한 출력 예제 🍕 출력 결과 실수형 값의 출력에 사용되는 지시자는 %f %e %g 가 있는데, %f 가 주로 쓰이고, %e는 지수형태로 출력할 때, %g는 값을 간략하게 표현 할 때 사용 %f 는 기본적으로 소수점 아래 6자리까지만 출력하기 때문에 소수점 아래 7자리에서 반올림 전체 자리수와 소수점 아래의 자리수를 지정할 수도 있음 ▶전체 14자리 중 소수점 아래 10자리 ... JavaJava의 정석Java [Java의 정석]Chapter2.변수(01~03) 화면에 글자 출력하기-print()과 println() System.out.print() 괄호 안의 내용을 출력하고 줄바꿈을 하지 않음 System.out.println() 괄호 안의 내용을 출력하고 줄바꿈 자바는 대소문자를 구분함으로, System 입력 시 대문자 S 로 입력 덧셈 뺄셈 계산하기 변수의 선언과 저장 변수(variable)? 하나의 값을 저장할 수 있는 저장공간 변수가 필요하... JavaJava의 정석Java [Java의 정석]Chapter2.변수(07~09) 문자 리터럴과 문자열 리터럴 문자 리터럴 ❓ 문자열 리터럴 ❓ 📍 문자열 리터럴은""안에 아무런 문자도 넣지 않은 것을 허용하며, 이를 빈 문자열(empty string)이라고 함 📍 문자 리터럴은 반드시 ''안에 하나의 문자가 있어야 함 원래 String은 클래스(class)이므로, 아래와 같이 객체를 생성하는 연사자 new를 사용해야 하지만 특별히 이와 같은 표현도 허용 문자열 결합 덧셈... JavaJava의 정석Java 자바_객체지향언어 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 1. 클래스의 ... Java의 정석Java의 정석 자바_상속 상속의 정의 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 상속의 예시 상속에 대해서 알 수 있는 것들 부모와 자식 관계에서 클래스의 멤버변수와 메서드를 상속 받았을 때, 자식은 부모클래스의 멤버변수와 메서드를... Java의 정석Java의 정석